package com.pww.movie.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pww.movie.domain.DTO.MediaDto;
import com.pww.movie.domain.PO.Media;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pww.movie.utils.Result;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 媒体资源表 服务类
 * </p>
 *
 * @author pww
 * @since 2025-06-09
 */
public interface IMediaService extends IService<Media> {
    /**
     * 上传banner
     *
     * @param file
     * @param title
     * @param type
     * @param isBanner
     * @param createId
     * @param description
     * @return
     */
    String uploadBanner(MultipartFile file, String title, String type, Boolean isBanner, Integer createId, String description,String coverImage);


    /**
     * 获取最新banner
     *
     * @return
     */
    List<Media> getLatestBanners();


    /**
     * 获取用户收藏的媒体资源
     *
     * @param createId
     * @return
     */
    List<Media> getLatestBannersWithUserLike(Long createId);

    /**
     * 获取用户收藏的媒体资源
     *
     * @param userId
     * @return
     */
    Result<List<Media>> getUserLike(Long userId);


    /**
     * 获取用户收藏的视频
     *
     * @param userId
     * @return
     */
    Result<List<Media>> getUserLikeVideo(Long userId);

    /**
     * 获取用户的图片
     *
     * @param userId
     * @return
     */
    Result<Page<MediaDto>> getUserPicture(Integer pageNum,
                                          Integer pageSize);

    /**
     * 获取用户的视频
     *
     * @param pageNum
     * @param pageSize
     * @return
     */
    Result<Page<MediaDto>> getUserVideo(Integer pageNum, Integer pageSize);
}
